#pragma once

#include "ientity.h"

namespace Demo {

class EntityContainer
{
public:
    typedef std::list<IEntityPtr>::iterator Iterator;
    typedef std::list<IEntityPtr>::const_iterator ConstIterator;

    EntityContainer();
    virtual ~EntityContainer();

    void addEntity(const IEntityPtr &entity);
    void removeEntity(const IEntityPtr &entity);

    ConstIterator begin() const;
    ConstIterator end() const;
    Iterator begin();
    Iterator end();

private:
    std::list<IEntityPtr> _entities;
};

} // namespace Demo
